package controllers

import (
	"fmt"
	"goend/services"
	"net/http"
	"os"
	"strconv"

	"github.com/gin-gonic/gin"
)

func Get2(c *gin.Context) {
	c.String(http.StatusOK, "hello")
}
func GetVedio(c *gin.Context) {
	// 获取 URL 中被 * 匹配的部分（即文件名）
	fmt.Println("getvedio")
	fileName := c.Param("ts")
	path, err := os.Getwd()
	if err != nil {
		fmt.Println("获取主程序路径失败:", err)
		//c.String(http.StatusInternalServerError, "Failed to open video file")
		return
	}
	filePath := path + "/video/ffmpeg" + fileName
	// 使用 fileName 获取对应的文件资源路径
	fmt.Println(filePath)
	// 以二进制模式打开文件
	file, err := os.Open(filePath)
	if err != nil {
		// 处理文件打开错误
		c.String(http.StatusInternalServerError, "Internal Server Error")
		return
	}
	defer file.Close()

	// 获取文件信息
	fileInfo, err := file.Stat()
	if err != nil {
		// 处理文件信息获取错误
		c.String(http.StatusInternalServerError, "Internal Server Error")
		return
	}

	// 创建一个切片来存储文件内容
	fileContent := make([]byte, fileInfo.Size())

	// 读取文件内容
	_, err = file.Read(fileContent)
	if err != nil {
		// 处理文件读取错误
		c.String(http.StatusInternalServerError, "Internal Server Error")
		return
	}

	// 设置响应头，指定数据类型为 MPEG-TS
	c.Header("Content-Type", "video/mp2t")
	// 返回文件内容
	c.Data(http.StatusOK, "video/mp2t", fileContent)
}
func GetNewList(c *gin.Context) {
	res := services.GetNewList()
	fmt.Println("controllers")
	resmap := make(map[int]string)
	for k, v := range res {
		resmap[k] = v
	}

	c.JSON(200, resmap)
}
func GetVideoByKinds(c *gin.Context) {
	user := make(map[string]int)
	c.BindJSON(&user)
	kindst := user["kinds"]
	kinds := strconv.Itoa(kindst)
	fmt.Println("===============" + kinds)
	res := services.GetVideoByKinds(kinds)
	c.JSON(200, res)
	// a, b, d, e := services.Login(name, passwd)

	// if a {
	// 	c.JSON(200, gin.H{
	// 		"method": "POST",
	// 		"ID":     b,
	// 		"name":   d,
	// 		"power":  e,
	// 		"login":  a,
	// 	})
	// } else {
	// 	c.JSON(200, gin.H{
	// 		"method": "PSOT",
	// 		"name":   name,
	// 		"login":  false,
	// 	})
	// }

}
